/******************************************************************************
* 文件名称: msg_buf.h
* 内容摘要: 数据收发循环缓冲区头文件
* 创建者の: 孔佳伟
* 个人主页: https://gitee.com/thin-wind/jump
* 修改记录: 
******************************************************************************/


#ifndef __MSG_BUF_H_
#define __MSG_BUF_H_

#include <stdint.h>

#define FRAME_SIZE     8                       // 一帧报文 8 个字节

typedef struct Msg_S
{
    uint32_t            id;
    uint8_t             data[FRAME_SIZE];
} Msg_S;


#ifdef __cplusplus
extern "C" {
#endif

/******************************************************************************
* 函数名称: int PutToRxBuf(const Msg_S *msg)
* 功能说明: 向数据接收循环缓冲区中放入一帧数据
* 输入参数: const Msg_S *msg		--数据节点
* 输出参数: 无
* 函数返回: 0:成功; -1:失败
* 其它说明: 无
******************************************************************************/
int PutToRxBuf(const Msg_S *msg);

/******************************************************************************
* 函数名称: int GetFromRxBuf(Msg_S *msg)
* 功能说明: 从数据接收循环缓冲区中读取一帧数据
* 输入参数: 无
* 输出参数: const Msg_S *msg		--数据节点
* 函数返回: 0:成功; -1:失败
* 其它说明: 无
******************************************************************************/
int GetFromRxBuf(Msg_S *msg);

/******************************************************************************
* 函数名称: int PutToTxBuf(const Msg_S *msg)
* 功能说明: 向数据发送循环缓冲区中放入一帧数据
* 输入参数: const Msg_S *msg		--数据节点
* 输出参数: 无
* 函数返回: 0:成功; -1:失败
* 其它说明: 无
******************************************************************************/
int PutToTxBuf(const Msg_S *msg);

/******************************************************************************
* 函数名称: int GetFromTxBuf(Msg_S *msg)
* 功能说明: 从数据发送循环缓冲区中读取一帧数据
* 输入参数: 无
* 输出参数: const Msg_S *msg		--数据节点
* 函数返回: 0:成功; -1:失败
* 其它说明: 无
******************************************************************************/
int GetFromTxBuf(Msg_S *msg);

#ifdef __cplusplus
}
#endif


#endif // __MSGBUF_H_

